// ==UserScript== // @name 宝可梦点击(Poke Clicker)辅助脚本 自动矿场模块 // @namespace PokeClickerHelper // @version 0.1.1 // @description 自动矿场功能:可自动挖掘、售卖、买药、用药! // @author 苍猫 // @match https://www.pokeclicker.com // @match https://g8hh.github.io/pokeclicker/ // @match https://pokeclicker.g8hh.com // @match https://yx.g8hh.com/pokeclicker/ // @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/319hf99fYX/fX2F/319hf8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////99fYX/fX2F/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////wAAAP8AAAD/fX2F/319hf99fYX/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD/AAAA/wAAAP99fYX/fX2F/wAAAP8AAAD/AAAA/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/HBT//xwU//8AAAD//////319hf8AAAD/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU//8cFP//HBT//wAAAP8AAAD/Dgim/w4Ipv8OCKb/Dgim/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT//xwU/44cFP//HBT//xwU//8cFP//Dgim/w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU/47/////HBT/jhwU//8cFP//HBT//w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT/jhwU//8OCKb/Dgim/w4Ipv8OCKb/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/xwU//8OCKb/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAOAHAADwDwAA/D8AAP//AAD//wAA//8AAA== // @grant none // @license MIT // @run-at document-end // ==/UserScript== /* eslint dot-notation:0 */ /* global App, $, PokeClickerHelper, Underground, GameConstants, player, ItemList, Mine */ if (typeof PokeClickerHelper == typeof void 0) { alert('宝可梦点击(Poke Clicker)辅助脚本 自动矿场模块加载失败\n\n未找到核心模块,需要先安装核心模块才可正常使用\n\n论坛主页:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842') window.open("https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842") return } // UI相关 PokeClickerHelper.UIDOM.push(`
`) let fuc = () => { const text = `` // 未解锁挖矿的情况下会导致异常 加IF判断 if ($('#treasures th').length > 0) $('#treasures th')[3].style.width = "35%" $('#treasures th:eq(3)').append(text) const text_2 = `
初级体力药剂单价:
` $("#dig .row.no-gutters").eq(2).prepend(text_2) // 初始化加载功能状态 AutoUnderground.CheckAutoUnderground() // 初始化赋值 if (PokeClickerHelper.get('ToggleAutoDig', '') === '') PokeClickerHelper.set('ToggleAutoDig', 'false') } const listener = () => { $('#PokeClickerHelperToggleAutoDig').on('click', function () { if (AutoUnderground.LoadOver) { if (PokeClickerHelper.get('ToggleAutoDig', 'false') == 'false') { PokeClickerHelper.set('ToggleAutoDig', this.value = 'true'); $('#PokeClickerHelperToggleAutoDig').text('自动挖掘 [ON]'); PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoDig); } else { PokeClickerHelper.set('ToggleAutoDig', this.value = 'false'); $('#PokeClickerHelperToggleAutoDig').text('自动挖掘 [OFF]'); PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoDig); } } else { AutoUnderground.LoadOver = true; if (JSON.parse(PokeClickerHelper.get('ToggleAutoDig', 'false'))) { $('#PokeClickerHelperToggleAutoDig').text('自动挖掘 [ON]'); PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoDig); } } }) $('#PokeClickerHelperAutoSellPlate').on('click', function () { JSON.parse(this.value) ? this.value = 'false' : this.value = 'true'; JSON.parse(this.value) ? $('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('OFF', 'ON')) : $('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('ON', 'OFF')); JSON.parse(this.value) ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger'); JSON.parse(this.value) ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellPlate) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSellPlate) PokeClickerHelper.set('AutoSellPlate', this.value) }) $('#PokeClickerHelperAutoSellDiamond').on('click', function () { JSON.parse(this.value) ? this.value = 'false' : this.value = 'true'; JSON.parse(this.value) ? $('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('OFF', 'ON')) : $('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('ON', 'OFF')); JSON.parse(this.value) ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger'); JSON.parse(this.value) ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellDiamond) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSellDiamond) PokeClickerHelper.set('AutoSellDiamond', this.value) }) $('#PokeClickerHelperAutoSmallRestore').on('click', function () { JSON.parse(this.value) ? this.value = 'false' : this.value = 'true'; JSON.parse(this.value) ? $('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('OFF', 'ON')) : $('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('ON', 'OFF')); JSON.parse(this.value) ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger'); JSON.parse(this.value) ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSmallRestore) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSmallRestore) PokeClickerHelper.set('AutoSmallRestore', this.value) }) $('#PokeClickerHelperSmallRestore').on('change', event => { let SmallRestorePrice = +event.target.value.replace(/[A-Za-z!@#$%^&*()]/g, '').replace(/[,]/g, ""); PokeClickerHelper.set('BuySmallRestorePrice', SmallRestorePrice) event.target.value = SmallRestorePrice.toLocaleString('en-US'); }); } PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSellPlate"); PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSellDiamond"); PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSmallRestore"); PokeClickerHelper.UIContainerID.push("#PokeClickerHelperSmallRestore"); PokeClickerHelper.UICustomFuc.push(fuc); PokeClickerHelper.UIlistener.push(listener); // 暴露对象方法到全局 const AutoUnderground = {}; PokeClickerHelper.AutoUnderground = AutoUnderground; AutoUnderground.LoadOver = false; //判断是否加载完成 // 检测功能状态 AutoUnderground.CheckAutoUnderground = () => { if (JSON.parse(PokeClickerHelper.get('AutoSellPlate', 'false'))) { $('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('OFF', 'ON')) $('#PokeClickerHelperAutoSellPlate')[0].classList.replace('btn-danger', 'btn-success') PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellPlate) } if (JSON.parse(PokeClickerHelper.get('AutoSellDiamond', 'false'))) { $('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('OFF', 'ON')) $('#PokeClickerHelperAutoSellDiamond')[0].classList.replace('btn-danger', 'btn-success') PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellDiamond) } if (JSON.parse(PokeClickerHelper.get('AutoSmallRestore', 'false'))) { $('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('OFF', 'ON')) $('#PokeClickerHelperAutoSmallRestore')[0].classList.replace('btn-danger', 'btn-success') PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSmallRestore) } $('#PokeClickerHelperSmallRestore')[0].value = PokeClickerHelper.get('BuySmallRestorePrice', '0') $('#PokeClickerHelperSmallRestore').change() } // 自动挖矿 AutoUnderground.AutoDig = () => { const rewardDigArr = []; // 遍历所有的矿物 for (let i = 0; i < Mine.rewardGrid.length; i++) { const row = Mine.rewardGrid[i]; for (let j = 0; j < row.length; j++) { const reward = row[j]; if (reward && reward.revealed != 1) rewardDigArr.push({ x: i, y: j }); } } // 挖掘部分代码 if (rewardDigArr.length > 0) { let noEnergy = false; for (let i = 0; i < rewardDigArr.length; i++) { const rewardDig = rewardDigArr[i]; const reward = Mine.rewardGrid[rewardDig.x][rewardDig.y]; while (reward.revealed != 1) { if (App.game.underground.energy >= Underground.CHISEL_ENERGY) { Mine.chisel(rewardDig.x, rewardDig.y); } else { noEnergy = true; break; } } if (noEnergy) break; } } } // 自动售板 AutoUnderground.AutoSellPlate = () => { player.mineInventory().forEach(item => { if (item.valueType === 1 && !item.sellLocked() && item.amount() > 0) Underground.sellMineItem(item.id, item.amount()) }) } // 自动售宝 AutoUnderground.AutoSellDiamond = () => { player.mineInventory().forEach(item => { if (item.valueType === 0 && !item.sellLocked() && item.amount() > 0) Underground.sellMineItem(item.id, item.amount()) }) } // 自动 买/用 初级体力药剂 AutoUnderground.AutoSmallRestore = () => { // 购买药剂 Version 0.1.1 新增判断 未开启自动挖掘的功能情况即使开启购买药剂也不会购买 let Buyprice = Math.round(ItemList["SmallRestore"].basePrice * (player.itemMultipliers["SmallRestore"] || 1)); if (JSON.parse(PokeClickerHelper.get('BuySmallRestorePrice', '0')) > Buyprice && JSON.parse(PokeClickerHelper.get('ToggleAutoDig', 'false'))) ItemList["SmallRestore"].buy(1); // 使用药剂 if (App.game.underground.energy < Underground.CHISEL_ENERGY) { //当前体力<使用的挖矿工具需要的体力时候 if (player.itemList["SmallRestore"]() > 0) { ItemList["SmallRestore"].use(); } else if (player.itemList["MediumRestore"]() > 0) { ItemList["MediumRestore"].use(); } else if (player.itemList["LargeRestore"]() > 0) { ItemList["LargeRestore"].use(); } } }